/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.jsf;

import br.data.model.Cidades;
import br.data.model.Clientes;
import br.data.model.Estados;
import br.data.model.Fornecedores;
import java.util.Date;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

/**
 *
 * @author WStrafacce
 */
@ManagedBean
@RequestScoped
public class RFacesCadastroUsuario {

    private int codigo;
    private Date dataPagamento;
    private Date dataCadastro;
    private boolean status;
    private String valorMensalidade;
    private String razaoSocial;
    private String responsavel;
    private String cpf;
    private String nomeFantasia;
    private String cnpj;
    private String inscricaoEstadual;
    private String telefone;
    private String logradouro;
    private String rua;
    private String numero;
    private String complemento;
    private String bairro;
    private String login;
    private String senha;
    private String estado;
    private String cidade;
    private String cep;
    private boolean tornarCliente;

    public boolean isTornarCliente() {
        return tornarCliente;
    }

    public void setTornarCliente(boolean tornarCliente) {
        this.tornarCliente = tornarCliente;
    }

    public String getCep() {
        return cep;
    }

    public void setCep(String cep) {
        this.cep = cep;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public String getResponsavel() {
        return responsavel;
    }

    public void setResponsavel(String responsavel) {
        this.responsavel = responsavel;
    }

    public String getBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    public String getCnpj() {
        return cnpj;
    }

    public void setCnpj(String cnpj) {
        this.cnpj = cnpj;
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public String getComplemento() {
        return complemento;
    }

    public void setComplemento(String complemento) {
        this.complemento = complemento;
    }

    public Date getDataCadastro() {
        return dataCadastro;
    }

    public void setDataCadastro(Date dataCadastro) {
        this.dataCadastro = dataCadastro;
    }

    public Date getDataPagamento() {
        return dataPagamento;
    }

    public void setDataPagamento(Date dataPagamento) {
        this.dataPagamento = dataPagamento;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getInscricaoEstadual() {
        return inscricaoEstadual;
    }

    public void setInscricaoEstadual(String isncricaoEstadual) {
        this.inscricaoEstadual = isncricaoEstadual;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getLogradouro() {
        return logradouro;
    }

    public void setLogradouro(String logradouro) {
        this.logradouro = logradouro;
    }

    public String getNomeFantasia() {
        return nomeFantasia;
    }

    public void setNomeFantasia(String nomeFantasia) {
        this.nomeFantasia = nomeFantasia;
    }

    public String getNumero() {
        return numero;
    }

    public void setNumero(String numero) {
        this.numero = numero;
    }

    public String getRazaoSocial() {
        return razaoSocial;
    }

    public void setRazaoSocial(String razaoSocial) {
        this.razaoSocial = razaoSocial;
    }

    public String getRua() {
        return rua;
    }

    public void setRua(String rua) {
        this.rua = rua;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public boolean isStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    public String getValorMensalidade() {
        return valorMensalidade;
    }

    public void setValorMensalidade(String valorMensalidade) {
        this.valorMensalidade = valorMensalidade;
    }

    /** Creates a new instance of RFacesUsuario */
    public RFacesCadastroUsuario() {
    }

    public String save(ActionEvent actionEvent) {
        FacesContext context = FacesContext.getCurrentInstance();
        try {


            if (!(new br.data.crud.CrudClientes().getCliente(login) != null
                    || new br.data.crud.CrudFornecedores().getFornecedor(login) != null
                    || new br.data.crud.CrudAdministrador().getAdministrador(login) != null)) {
                if (tornarCliente) {
                    br.data.model.Clientes cliente = new Clientes();
                    dataCadastro = new Date();
                    dataCadastro.getDate();
                    cliente.setCodigocli(new br.data.crud.CrudClientes().getNovoCodigo());
                    cliente.setLogin(login);
                    cliente.setSenha(senha);
                    cliente.setResponsavel(responsavel);
                    cliente.setCpf(cpf);
                    cliente.setCnpj(cnpj);
                    cliente.setFantasia(nomeFantasia);
                    cliente.setRazaosocial(razaoSocial);
                    cliente.setInscestadual(inscricaoEstadual);
                    cliente.setLogradouro(logradouro);
                    cliente.setRua(rua);
                    cliente.setNumero(Integer.parseInt(numero));
                    cliente.setComplemento(complemento);
                    cliente.setBairro(bairro);
                    cliente.setCodigocid(new Cidades(Integer.parseInt(cidade)));
                    cliente.setCep(cep);
                    cliente.setCodigoest(new Estados(Integer.parseInt(estado)));
                    cliente.setTelefone(telefone);
                    cliente.setDatacadastro(dataCadastro);
                    
                    new br.data.crud.CrudClientes().persist(cliente);
                    context.addMessage(null, new FacesMessage("Cadastro realizado com sucesso", "Bem vindo: " + login));
                    
                    return "aguardando_liberacao.xhtml";

                }else{
                    br.data.model.Fornecedores fornecedor = new Fornecedores();
                    fornecedor.setCodigoforn(new br.data.crud.CrudFornecedores().getNovoCodigo());
                    fornecedor.setLogin(login);
                    fornecedor.setSenha(senha);
                    fornecedor.setResponsavel(responsavel);
                    fornecedor.setCpf(cpf);
                    fornecedor.setCnpj(cnpj);
                    fornecedor.setFantasia(nomeFantasia);
                    fornecedor.setRazaosocial(razaoSocial);
                    fornecedor.setInscestadual(inscricaoEstadual);
                    fornecedor.setLogradouro(logradouro);
                    fornecedor.setRua(rua);
                    fornecedor.setNumero(Integer.parseInt(numero));
                    fornecedor.setComplemento(complemento);
                    fornecedor.setBairro(bairro);
                    fornecedor.setCodigocid(new Cidades(Integer.parseInt(cidade)));
                    fornecedor.setCep(cep);
                    fornecedor.setCodigoest(new Estados(Integer.parseInt(estado)));
                    fornecedor.setTelefone(telefone);
                    fornecedor.setDatacadastro(new br.util.utilitarios().getHoje());
                    
                    new br.data.crud.CrudFornecedores().persist(fornecedor);
                    context.addMessage(null, new FacesMessage("Cadastro realizado com sucesso", "Bem vindo: " + login));
                    
                    return "index.xhtml";
                }
            } else {
                context.addMessage(null, new FacesMessage("Login existente", "Digite um login diferente de " + login));
                return "";
            }
        } catch (Exception e) {
            return "";
        }
    }
}
